// pages/profile/profile.js
Page({
  data: {
    userInfo: null,
    isLoggedIn: false,
    orderStats: {
      pending: 0,
      processing: 0,
      completed: 0,
      cancelled: 0
    },
    hasUserInfo: false,
    canIUseGetUserProfile: false,
    orderCount: {
      toPay: 0,      // 待付款
      toDeliver: 3,  // 待发货
      toReceive: 2,  // 待收货
      toComment: 5   // 待评价
    },
    // 功能列表
    functionList: [
      {
        id: 1,
        name: '我的地址',
        icon: 'https://img.icons8.com/color/48/000000/address--v1.png',
        url: '/pages/address/address'
      },
      {
        id: 2,
        name: '联系客服',
        icon: 'https://img.icons8.com/color/48/000000/online-support.png',
        url: ''
      },
      {
        id: 3,
        name: '关于我们',
        icon: 'https://img.icons8.com/color/48/000000/info--v1.png',
        url: '/pages/about/about'
      }
    ]
  },
  
  onLoad: function() {
    // 判断是否可以使用 wx.getUserProfile
    if (wx.getUserProfile) {
      this.setData({
        canIUseGetUserProfile: true
      });
    }
    
    // 检查是否已授权
    this.checkAuthStatus();
  },
  
  onShow: function() {
    // 每次显示页面时检查登录状态
    this.checkLoginStatus();
    
    // 如果已登录，获取订单统计
    if (this.data.isLoggedIn) {
      this.getOrderStats();
    }
  },
  
  // 检查用户授权状态
  checkAuthStatus: function() {
    const userInfo = wx.getStorageSync('userInfo');
    if (userInfo) {
      this.setData({
        userInfo: userInfo,
        hasUserInfo: true
      });
    }
  },
  
  // 使用新接口获取用户信息
  getUserProfile: function() {
    wx.getUserProfile({
      desc: '用于完善会员资料',
      success: (res) => {
        // 保存用户信息到本地存储
        wx.setStorageSync('userInfo', res.userInfo);
        
        this.setData({
          userInfo: res.userInfo,
          hasUserInfo: true
        });
      },
      fail: (err) => {
        console.error('获取用户信息失败', err);
      }
    });
  },
  
  // 检查登录状态
  checkLoginStatus: function() {
    const app = getApp();
    const userInfo = app.globalData.userInfo;
    
    this.setData({
      userInfo: userInfo,
      isLoggedIn: !!userInfo
    });
  },
  
  // 获取订单统计信息
  getOrderStats: function() {
    const app = getApp();
    
    app.globalData.api.order.getList()
      .then(res => {
        const orders = res.results || [];
        
        // 统计不同状态的订单数量
        const stats = {
          pending: 0,
          processing: 0,
          completed: 0,
          cancelled: 0
        };
        
        orders.forEach(order => {
          if (stats.hasOwnProperty(order.status)) {
            stats[order.status]++;
          }
        });
        
        this.setData({ orderStats: stats });
      })
      .catch(err => {
        console.error('获取订单统计失败', err);
        // 不中断用户体验，只是显示空数据
        this.setData({
          orderStats: {
            pending: 0,
            processing: 0,
            completed: 0,
            cancelled: 0
          }
        });
      });
  },
  
  // 跳转到登录页面
  goToLogin: function() {
    const app = getApp();
    app.goToLogin('/pages/profile/profile');
  },
  
  // 退出登录
  logout: function() {
    const app = getApp();
    
    wx.showModal({
      title: '退出登录',
      content: '确定要退出登录吗？退出后将需要重新登录，但不会丢失您的数据。',
      success: (res) => {
        if (res.confirm) {
          app.globalData.api.user.logout()
            .then(() => {
              // 退出登录后刷新页面状态
              this.setData({
                userInfo: null,
                isLoggedIn: false
              });
              
              wx.showToast({
                title: '已退出登录',
                icon: 'success',
                duration: 2000
              });
              
              // 确保页面数据刷新
              setTimeout(() => {
                this.onShow();
              }, 100);
            })
            .catch(err => {
              console.error('退出登录失败:', err);
              wx.showToast({
                title: '退出失败，请重试',
                icon: 'none'
              });
            });
        }
      }
    });
  },
  
  // 跳转到订单列表
  goToOrders: function(e) {
    // 获取订单状态
    const status = e.currentTarget.dataset.status || '';
    
    // 如果没有登录，先跳转到登录页
    if (!this.data.isLoggedIn) {
      this.goToLogin();
      return;
    }
    
    // 跳转到订单列表页面
    wx.navigateTo({
      url: `/pages/orders/orders?status=${status}`
    });
  },
  
  // 跳转到收货地址页面
  goToAddress: function() {
    // 如果没有登录，先跳转到登录页
    if (!this.data.isLoggedIn) {
      this.goToLogin();
      return;
    }
    
    wx.navigateTo({
      url: '/pages/address/address'
    });
  },
  
  // 跳转到用户信息设置页面
  goToSettings: function() {
    // 如果没有登录，先跳转到登录页
    if (!this.data.isLoggedIn) {
      this.goToLogin();
      return;
    }
    
    wx.navigateTo({
      url: '/pages/settings/settings'
    });
  },
  
  // 联系客服
  contactService: function() {
    wx.showModal({
      title: '联系客服',
      content: '客服电话：123-4567-8910\n服务时间：9:00-18:00',
      showCancel: false
    });
  },
  
  // 跳转到指定页面
  navigateTo: function(e) {
    const url = e.currentTarget.dataset.url;
    if (!url) {
      // 联系客服
      if (e.currentTarget.dataset.id === 2) {
        // 调用客服接口
        wx.showToast({
          title: '正在连接客服...',
          icon: 'none'
        });
      }
      return;
    }
    
    wx.navigateTo({
      url: url
    });
  }
}) 